package com.holly.unit.deform.api.exception.enums;

import com.holly.unit.core.constants.RuleConstants;
import com.holly.unit.core.exception.AbstractExceptionEnum;
import com.holly.unit.deform.api.constants.DeformConstants;
import lombok.Getter;

/**
 * 类描述:表单设计器相关异常
 *
 * @author fxr
 * @version 1.0.0
 * @date 2022/4/1 19:03
 */
@Getter
public enum DeformExceptionEnum implements AbstractExceptionEnum {

    /**
     * 表单设计新增数据异常
     */
    DEFORM_ADD_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "01", "新增数据异常"),

    /**
     * 表单设计编辑数据异常
     */
    DEFORM_EDIT_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "02", "编辑数据异常"),

    /**
     * 表单设计不存在
     */
    DEFORM_NO_EXIST_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "03", "表单设计不存在"),


    /**
     * 表单设计的ID数据不存在
     */
    DEFORM_QUERY_BY_ID_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "04", "数据{} 不存在"),


    /**
     * 表单设计的编码数据不存在
     */
    DEFORM_QUERY_BY_CODE_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "05", "编码{} 不存在"),

    /**
     * 表单批量删除参数异常
     */
    DEFORM_DEL_PARAM_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "06", "参数不识别"),


    /**
     * 同步表单索引部分异常
     */
    DEFORM_REDOALLINX_BUG(RuleConstants.BUSINESS_ERROR_TYPE_CODE + DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "07", "快速重置ES索引：成功了{}条，失败了{}条"),

    /**
     * 强制同步表单索引部分异常
     */
    DEFORM_REDOALLINXFORCE_BUG(RuleConstants.BUSINESS_ERROR_TYPE_CODE + DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "08", "强制重置ES索引：成功了{}条，失败了{}条"),

    /**
     * 同步表单索引全部异常
     */
    DEFORM_REDOALLINX_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "09", "快速重置ES索引：全部失败"),

    /**
     * 强制同步表单索引全部异常
     */
    DEFORM_REDOALLINXFORCE_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "10", "强制重置ES索引：全部失败"),

    /**
     * 表单设计开发API 新增数据异常
     */
    DEFORM_FACADE_API_ADD_FORMDATA_NULL(RuleConstants.BUSINESS_ERROR_TYPE_CODE + DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "11", "FORMDATA不能为空"),


    /**
     * 表单设计开发API 新增数据异常
     */
    DEFORM_FACADE_API_ADD_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "12", "API方式新增数据异常"),





    /**
     * 一对多新增数据异常
     */
    DEFORM_ONE_TO_MANY_ERROR(RuleConstants.BUSINESS_ERROR_TYPE_CODE + DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "13", "新增数据[一对多]异常"),


    /**
     * 一对多新增数据异常
     */
    DEFORM_ENGINE_LINK_DISABLE(RuleConstants.BUSINESS_ERROR_TYPE_CODE + DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "14", "已禁止访问此链接"),

    /***
     * 表单设计器校验【deform-designer】-表单模板为空
     */
    DEFORM_DESIGNER_TEMPLATE_NULL(RuleConstants.BUSINESS_ERROR_TYPE_CODE+DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "15","表单设计图纸为空"),

    /***
     * 表单设计器校验【deform-designer】-表单数据为空
     */
    DEFORM_DESIGNER_VALUE_NULL(RuleConstants.BUSINESS_ERROR_TYPE_CODE+DeformConstants.DEFORM_EXCEPTION_STEP_CODE + "16","表单数据为空");








    /**
     * 错误编码
     */
    private final String errorCode;

    /**
     * 提示用户信息
     */
    private final String userTip;

    DeformExceptionEnum(String errorCode, String userTip) {
        this.errorCode = errorCode;
        this.userTip = userTip;
    }
}
